One or more aspects relate, in general, to processing within a computing environment, and in particular, to facilitating such processing within the computing environment.
In one example, processing within a computing environment includes running programs to perform certain tasks, and ensuring that those programs are running as expected and efficiently, in order to facilitate processing within the processors running those programs.
Users of compiled programs and compilers often wish to understand the performance of the user code. A test case representing an expected execution context is used to drive the program, and profile information is collected. The profile information typically includes histograms of the machine instructions executing and of the branches taken. Execution hot spots can be inferred using those histograms, either by inspection in a performance visualization tool or by compiler optimization techniques.
A problem occurs, however, in complex builds of the compiled programs when users are not able to track exactly which source and object modules were used and linked into the programs they profiled. Thus, when the profile is used to determine how it affected the performance of the product, and therefore, computing environment, it is difficult to determine which version of the code was affected.
Therefore, performance analysts often have to carry out complex manual steps, using esoteric features of the code and eyecatchers to determine the version of the code profiled. This can be cumbersome, time consuming and error prone.